package com.miyu.plugins.aop;

import java.lang.annotation.*;

/**
 * 缓存批收回
 * 使用新注解 批量删除缓存的key
 * 支持key数组 key 集合
 * 集合时需要指定key 循环取值
 * @author miyu
 * @date 2022/11/01
 */
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Inherited
@Documented
public @interface CacheBatchEvict {

    /**
     * 指定缓存组件
     */
    String[] cacheNames() default {};
    /**
     * key需要指定一个spEL表达式，通过spEL表达式获取方法参数
     */
    String key() default "";
    /**
     * 是否清除所有
     */
    boolean isClearAll() default false;

    /**
     * 数据类型
     * listMap
     * jsonArray
     * list list数组形式
     *
     */
    String type() default "";

    /**
     * 配合type 使用 listMap    jsonArray 取值对应key
     * @return
     */
    String value() default "";
}
